package com.qxkj.mysql.multidb.dbRoute.base;

/**
 * Copyright © 2018年 ziniuxiaozhu. All rights reserved.
 *
 * @Author 临江仙 hzqiuxm@163.com
 * 根据当前线程来选择具体的数据源
 * @Date 2018/9/5 14:11
 */
public class HandlerDataSource {
    private static ThreadLocal<String> handlerThredLocal = new ThreadLocal<String>();

    /**
     * 提供给AOP去设置当前的线程的数据源的信息
     * @param datasource
     */
    public static void putDataSource(String datasource) {
        handlerThredLocal.set(datasource);
    }


    /**
     * 提供给AbstractRoutingDataSource的实现类，通过key选择数据源
     * @return
     */
    public static String getDataSource() {
        return handlerThredLocal.get();
    }


    /**
     * 使用默认的数据源
     */
    public static void clear() {
        handlerThredLocal.remove();
    }

}
